1. Field of the Invention
The invention relates generally to graphical display of data, and in particular, to displaying a graph view of multiply connected objects.
2. Background Information
Visualization of and interaction with data helps users quickly understand the types of data available and their interrelationships. Often, sets of data are presented as lists, or tables with columns, depicting specific attributes of each instance of data. Analyzing and understanding the nature and state of units of data, and appreciating any subtle relationships and connections therebetween, can be difficult and time consuming. For example, in a screen display, large sets of textual data cannot fit on a single display without the user having to scroll or page, whereby a user cannot retain a view of all the data at once. A conventional solution is to draw a graph of objects with lines indicating relationships between pairs of objects, and some arbitrary shape representing each instance of an object. Typically, the scale of the graph can be controlled, and the data arranged in such a way that all data or a selection of data can be viewed in a single screen. An example of this is a unified modeling language (UML) editor, which allows users to examine a set of object classes and the relationships between them. The user can move around the graph, zoom into items of interest and view details of specific classes (e.g., zoom into objects in the graph and identify relationships that exist between classes).
A relationship or connection between two objects is typically described by specifying the name of the relationship and the direction of the relationship. The direction is often conveyed by drawing an arrowhead where the line connecting the objects meets the target object. A two-way relationship can be drawn as a line with an arrowhead on each end, connecting the objects. The name is often shown as a label next to the line. In some contexts, more than one relationship exists between any two objects, in both directions. In a complex graph, where there are multiple objects with connections to many other objects, the end result can be a tangled graph, which is difficult to make sense of Graph drawing techniques and algorithms are well known and attempt to reduce this visual complexity by arranging the objects in an aesthetically pleasing layout, such as a hierarchy, or by evenly distributing the objects within the extent of the display. Another technique to improve clarity of a graph is to move objects around such that the number of crossings of connection lines is minimized. These require redrawing the graph at a server as a bitmap, transmitting the bitmap to a client via communication link, and displaying the bitmap at a client. However, this consumes communication bandwidth and is slow.